package com.rede.didiok.user.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rede.didiok.common.dto.user.CreditsLogDto;
import com.rede.didiok.user.entity.CreditsLogEntity;

/**
 * 获取/消耗积分日志表
 * 
 * @author Rede
 * @email didiok@foxmail.com
 * @date 2023-08-07 18:21:17
 */
@Mapper
public interface CreditsLogDao extends BaseMapper<CreditsLogEntity> {
    /**
     * 查询分页
     *
     * @param page
     * @param userUid 用户Uid
     * @return
     */
    Page<CreditsLogDto> queryList(Page page, @Param("userUid") String userUid);

    /**
     * 新增日志操作记录
     *
     * @param creditsLogVO
     */
    void addCreditsLog(@Param("creditsLogVO") CreditsLogDto creditsLogVO);

    /**
     * 查询积分发放情况
     *
     * @param page
     * @param userUid
     * @return
     */
    Page<CreditsLogDto> queryCredits(Page page, @Param("userUid") String userUid);

    /**
     * 查询某个用户某天的 动作是否上限
     * 包含后续补签
     *
     * @param userUid
     * @param day
     * @param actionCode
     * @return
     */
    Integer queryCount(@Param("userUid") String userUid, @Param("day") String day, @Param("actionCode") String actionCode);

}
